package com.ruoyi.project.system.service;

import com.ruoyi.project.system.domain.SysProduct;
import com.ruoyi.project.system.domain.vo.ProductEquity;
import com.ruoyi.project.system.domain.vo.Promote;
import com.ruoyi.project.system.domain.vo.PromoteEquity;

import java.math.BigDecimal;
import java.util.List;

/**
 * 产品Service接口
 *
 * @author ruoyi
 * @date 2024-07-23
 */
public interface ISysProductService {

    public BigDecimal getSysUserLevelFloorPrice(SysProduct sysProduct, String level);

    /**
     * 产品价格权益展示（基础价与定制价）
     * @param sysProducts
     * @return
     */
    List<ProductEquity> productEquity(List<SysProduct> sysProducts);

    /**
     * 推广权益展示（我的产品提成，佣金）
     * @param sysProducts
     * @return
     */
    List<PromoteEquity> promoteEquity(List<SysProduct> sysProducts);

    /**
     * 合成下单支付数据/单品价格展示修改
     * @param userId
     * @param productId
     * @return
     */
    Promote calculatePriceInfo(Long userId, int productId);

    /**
     * 查询产品
     *
     * @param productId 产品主键
     * @return 产品
     */
    SysProduct selectSysProductByProductId(int productId);

    /**
     * 查询产品列表
     *
     * @param sysProduct 产品
     * @return 产品集合
     */
    List<SysProduct> selectSysProductList(SysProduct sysProduct);

    /**
     * 新增产品
     *
     * @param sysProduct 产品
     * @return 结果
     */
    int insertSysProduct(SysProduct sysProduct);

    /**
     * 修改产品
     *
     * @param sysProduct 产品
     * @return 结果
     */
    int updateSysProduct(SysProduct sysProduct);

}
